From: Andrew Cooper Date: Fri, 12 Aug 2022 17:25:55 +0000 (+0100) Subject: x86/traps: Make nmi_show_execution_state() more useful X-Git-Tag: archive/raspbian/4.17.0-1+rpi1^2~33^2~292 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https://%22%22/%22http:/www.example.com/cgi/%22https:/%22%22?a=commitdiff_plain;h=0f2611c524385f7bffeee67635a488a5a29b6ba4;p=xen.git x86/traps: Make nmi_show_execution_state() more useful * Always emit current. It's critically important. * Do not render (0000000000000000) for the symbol in guest context. It's just line-noise. Instead, explicitly identify which Xen vs guest context. * Try to tabulate the data, because there is often lots of it. Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich --- diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c index b713ef7e77..7207390118 100644 --- a/xen/arch/x86/traps.c +++ b/xen/arch/x86/traps.c @@ -767,9 +767,13 @@ static int cf_check nmi_show_execution_state( if ( opt_show_all ) show_execution_state(regs); + else if ( guest_mode(regs) ) + printk(XENLOG_ERR "CPU%d\t%pv\t%04x:%p in guest\n", + cpu, current, regs->cs, _p(regs->rip)); else - printk(XENLOG_ERR "CPU%d @ %04x:%08lx (%pS)\n", cpu, regs->cs, - regs->rip, guest_mode(regs) ? NULL : _p(regs->rip)); + printk(XENLOG_ERR "CPU%d\t%pv\t%04x:%p in Xen: %pS\n", + cpu, current, regs->cs, _p(regs->rip), _p(regs->rip)); + cpumask_clear_cpu(cpu, &show_state_mask); return 1;